package com.project2.util;


import com.project2.bean.ResultVo;
import com.project2.execption.ValidationException;
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;

/**
 * @author stone
 * @date 2022/08/15 15:25
 */
public class ValidationUtil {
    public static ResultVo valid(BindingResult bindingResult) {
        if (bindingResult.hasFieldErrors()) {//是否有校验错误
            FieldError fieldError = bindingResult.getFieldError();//拿到校验错误
            // 拿到成员变量名 → 请求参数名
            String field = fieldError.getField();
            // 拿到错误的值
            Object rejectedValue = fieldError.getRejectedValue();
            // 消息
            String defaultMessage = fieldError.getDefaultMessage();
            StringBuffer sb = new StringBuffer();
            String msg = sb.append("请求参数")
                    .append(field)
                    .append("传入的值")
                    .append(rejectedValue)
                    .append("有问题 -- > ")
                    .append(defaultMessage).toString();
            return ResultVo.invalidParameter(msg);
        }
        return null;
    }

    public static void valid2(BindingResult bindingResult) throws ValidationException {
        if (bindingResult.hasFieldErrors()) {//是否有校验错误
            FieldError fieldError = bindingResult.getFieldError();//拿到校验错误
            // 拿到成员变量名 → 请求参数名
            String field = fieldError.getField();
            // 拿到错误的值
            Object rejectedValue = fieldError.getRejectedValue();
            // 消息
            String defaultMessage = fieldError.getDefaultMessage();
//            StringBuffer sb = new StringBuffer();
//            String msg = sb.append("请求参数")
//                    .append(field)
//                    .append("传入的值")
//                    .append(rejectedValue)
//                    .append("有问题 -- > ")
//                    .append(defaultMessage).toString();

            //精彩
//            throw new ValidationException(msg);
            throw new ValidationException(defaultMessage);
        }
    }
}
